package com.ruoyi.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.ruoyi.common.core.domain.zzw.TIndicatorsInfo;
import com.ruoyi.common.core.domain.zzw.TSafenessIndex;
import com.ruoyi.common.core.domain.zzw.VO.AlgorithmModelVO;
import com.ruoyi.common.core.domain.zzw.VO.TIndicatorsList;

import java.util.List;

/**
 * 平安指数Service接口
 *
 * @author ruoyi
 * @date 2023-11-03
 */
public interface ITSafenessIndexService  extends IService<TSafenessIndex>
{
    /**
     * 查询平安指数
     *
     * @param cSafenessId 平安指数主键
     * @return 平安指数
     */
    public TSafenessIndex selectTSafenessIndexByCSafenessId(Long cSafenessId);

    /**
     * 查询平安指数列表
     *
     * @param tSafenessIndex 平安指数
     * @return 平安指数集合
     */
    public List<TSafenessIndex> selectTSafenessIndexList(TSafenessIndex tSafenessIndex);

    /**
     * 新增平安指数
     *
     * @param tSafenessIndex 平安指数
     * @return 结果
     */
    public int insertTSafenessIndex(TSafenessIndex tSafenessIndex);

    /**
     * 修改平安指数
     *
     * @param tSafenessIndex 平安指数
     * @return 结果
     */
    public int updateTSafenessIndex(TSafenessIndex tSafenessIndex);

    /**
     * 批量删除平安指数
     *
     * @param cSafenessIds 需要删除的平安指数主键集合
     * @return 结果
     */
    public int deleteTSafenessIndexByCSafenessIds(Long[] cSafenessIds);

    /**
     * 删除平安指数信息
     *
     * @param cSafenessId 平安指数主键
     * @return 结果
     */
    public int deleteTSafenessIndexByCSafenessId(Long cSafenessId);

    List<TSafenessIndex> ByRegionTop(TSafenessIndex tSafenessIndex);

    List<TSafenessIndex> BycRegionId(TSafenessIndex tSafenessIndex);

    List<TSafenessIndex> BycPid(TSafenessIndex tSafenessIndex);

    List<TIndicatorsList> ById(TSafenessIndex tSafenessIndex);


    List<TIndicatorsList> safBycRegId(Long id);

    List<TIndicatorsInfo> rightRegIdTop4(Long id);

    AlgorithmModelVO statistics(Long safenessId) throws JsonProcessingException;
}
